@echo off
chcp 65001 >nul
echo === 药品管理系统部署脚本 ===

REM 检查Docker是否安装
docker --version >nul 2>&1
if errorlevel 1 (
    echo 错误: Docker未安装，请先安装Docker Desktop
    pause
    exit /b 1
)

REM 检查Docker Compose是否安装
docker-compose --version >nul 2>&1
if errorlevel 1 (
    echo 错误: Docker Compose未安装，请先安装Docker Compose
    pause
    exit /b 1
)

REM 创建必要的目录
echo 创建必要的目录...
if not exist "logs\nginx" mkdir logs\nginx
if not exist "ssl" mkdir ssl

REM 检查nginx配置文件
if not exist "nginx.conf" (
    echo 错误: nginx.conf文件不存在
    pause
    exit /b 1
)

REM 检查配置文件
if not exist "configs\config.yaml" (
    echo 错误: configs\config.yaml文件不存在
    pause
    exit /b 1
)

REM 构建Go应用镜像
echo 构建Go应用镜像...
docker-compose build medicine-app

REM 启动服务
echo 启动服务...
docker-compose up -d

REM 等待服务启动
echo 等待服务启动...
timeout /t 10 /nobreak >nul

REM 检查服务状态
echo 检查服务状态...
docker-compose ps

REM 检查nginx配置
echo 检查nginx配置...
docker-compose exec nginx nginx -t

REM 测试健康检查
echo 测试健康检查...
curl -f http://localhost/health >nul 2>&1
if errorlevel 1 (
    echo ❌ 服务启动失败，请检查日志:
    docker-compose logs
    pause
    exit /b 1
) else (
    echo ✅ 服务启动成功！
    echo 📊 访问地址: http://localhost
    echo 🔍 健康检查: http://localhost/health
    echo 📝 Nginx日志: logs\nginx\
    echo 🐳 容器管理: docker-compose ps
)

echo.
echo === 限流配置说明 ===
echo 📈 订单接口限流策略:
echo   - 基础限流: 每个IP每秒最多10个请求
echo   - 创建订单: 每个IP每秒最多5个请求
echo   - 查询订单: 每个IP每秒最多20个请求
echo   - 用户级别: 每个用户每秒最多3个请求
echo   - 并发连接: 每个IP最多10个并发连接
echo.
echo 🛠️ 常用命令:
echo   查看日志: docker-compose logs -f
echo   重启服务: docker-compose restart
echo   停止服务: docker-compose down
echo   更新配置: docker-compose up -d --build

pause 